本文介绍用户体验监控日志中的数据含义。
用户体验监控日志包含明细表和聚合表。
明细表:view、resource、exception、longtask、action、custom
聚合表:session
名词解释
属性(Attribute):索引,一般为String类型,对数据进行分组、过滤、聚合等作用,不可量化但具备有限可枚举性、索引。
度量(Measure):索引,一般为Number类型,是可量化的值。
元数据(Metadata):默认非索引,为描述数据的数据,主要是描述数据属性的信息。
公共属性
公共属性共26个,需要建立索引,是数据过滤和聚合的重要组成部分,在明细表和聚合表中都将存在。同一SessionID在一般情况下公共属性的值保持一致,但也有可能不同,例如Session内切换账号后uid不同导致的差异。
属性名 | 类型 | 指标项 | 说明 |
timestamp | long | 发生时间 | 事件发生的开始时间,如果没有则取系统时间补齐。 |
event_type | string | 事件类型 | view、resource、exception、longtask、action、custom,以及聚合表session。 |
event_id | string | 事件ID | 除view和session之外的resource、exception、longtask、action和custom。 |
app.id | string | 应用ID | 创建RUM应用生成的唯一应用ID。 |
app.version | string | 应用版本 | 用户自己定义的版本号。 |
app.channel | string | 应用渠道 | 应用渠道。 |
app.env | string | 环境信息 | 环境类型,用于区分生产pord(默认)、灰度gray、预发pre等。 |
app.type | string | 应用类型 | 对应用户创建应用时的应用类型,由上报和数据流双边指定,取值:
|
user.id | string | 用户ID | 用户ID,初始化SDK时可主动传入,不配置SDK随机生成。 |
user.name | string | 用户名 | 用户名称,需自定义配置。 |
user.tags | string | 用户标签 | 用户标签。 |
device.id | string | 设备ID | 设备ID。 |
device.type | string | 设备类型 | 设备报告的设备类型,例如:移动手机、PC。 |
device.brand | string | 设备品牌 | 设备报告的设备品牌,例如:华为、Apple。 |
device.model | string | 设备型号 | 设备报告的设备型号。 |
device.name | string | 设备名称 | 设备报告的设备名称。 |
os.type | string | 操作系统 | 设备报告的操作系统名称。 |
os.version | string | 操作系统版本 | 设备报告的操作系统版本。 |
os.container | string | 容器类型 | 例如:Chrome、微信小程序、App(应用名称)。 |
os.container_version | string | 容器版本 | 例如:Chrome的版本 |
geo.country | string | 国家 | 国家名称。 |
geo.country_id | string | 国家ISO | 国家Code。 |
geo.province | string | 省份/地域 | 省份或地域名称。 |
geo.province_id | string | 区域 code | 省份Code。 |
geo.city | string | 城市 | 城市名称。 |
geo.city_id | string | 城市 code | 城市Code。 |
isp.id | string | 运营商ID | 运营商ID。 |
isp.name | string | 运营商名称 | 运营商名称。 |
net.type | string | 接入方式 | 网络接入方式:2G、3G、4G、5G、WIFI、Unknown等,根据具体平台信息返回。 |
net.name | string | 网络名称 | Ethernet名称。 |
自定义属性
所有上报类型都允许用户增加上报自定义的key/value键值对,规范如下:
必须以英文字母开头,由数字和下划线(_)组成。
自定义键值对的数量最多50个。
键key最多20个字符(
/^[a-z][a-z0-9_]{1,20}$/i
),值value最多5000个字符。默认情况下键值对仅进行日志存储,不建立索引。
用户可以在控制台配置需要建立索引的字段,索引的数量不超过20个。
属性 | 类型 | 描述 |
{{event_type}}.{{custom_key}} | string | long | 自定义字段。 |
{
"app.group": "group1",
"user.age": 18,
"custom.event_name": "加入购物车",
}
公共Measure
指标 | 类型 | 描述 |
times | int | 事件发生的次数,默认值是1。 |
公共Metadata
字段名 | 类型 | 描述 |
os.user_agent | string | 来着上报请求头。 |
net.ip | string | 客户端IP |
device.sr | string | 屏幕分辨率。 |
os.container_vp | string | 页面大小分辨率。 |
明细表设计
View表
Attributes
属性名 | 类型 | 指标项 | 描述 |
session.id | string | 会话ID | 关联的Session。 |
view.id | string | 页面ID | 为每个页面视图随机生成的ID。 |
view.name | string | 页面名称 | 针对一类视图的别名,默认为URL的path部分,可以基于规则进行匹配或用户主动配置。 |
view.loading_type | string | 页面加载方式 | 页面加载类型:
|
view.type | string | 页面类型 | View事件类型:
|
Measures
属性 | 类型 | 指标项 | 描述 |
view.time_spent | long (ms) | 页面 | 在当前视图上花费的时间。 |
view.largest_contentful_paint | long (ms) | 最大内容渲染耗时 | 页面加载时间线中呈现视口中最大DOM对象(屏幕上可见)的时刻,大于2.5秒标记为慢。 |
view.first_input_delay | long (ms) | 首次输入延迟耗时 | 从用户第一次与页面交互到浏览器响应之间经过的时间。 |
view.cumulative_layout_shift | long | 累积布局配置偏移 | 量化由于动态加载的内容(例如第三方广告)而导致的意外页面移动,其中0表示没有发生变化。 |
view.loading_time | long (ms) | 页面加载时间 | 页面准备就绪且当前没有网络请求或DOM突变发生的时间。 |
view.first_contentful_paint | long (ms) | 首次内容渲染耗时(白屏时间) | FCP浏览器首次呈现text、image(包括背景图像)、非白色Canvas或SVG的时间。 |
view.dom_interactive | long (ms) | 首次可交互时间 | 内容可交互时间。 |
view.dom_content_loaded | long (ms) | HTML完全加载时间(DOM Ready 耗时) | 当初始HTML文档完全加载和解析时触发事件,无需等待非渲染阻塞stylesheets、images和subframes完成加载。 |
view.dom_complete | long (ms) | DOM | 页面和所有子资源都准备好了。对于用户Loading已停止旋转。 |
view.load_event | long (ms) | 页面完全加载时间 | 页面完全加载时触发的事件。通常是附加应用程序逻辑的触发器。 |
Metadata
属性名 | 类型 | 描述 |
view.referrer | string | 上一个网页的URL,从该网页链接到当前请求的页面。 |
view.url | string | View对应的URL,完整的URL包含了scheme协议、host、path、query、hash部分。 |
view.timing_data | string | PerformanceResourceTiming的JSONString。 |
view.snapshots | string | View快照JSONString,主要用于原生App。 |
Resource表
Resource表包含了API类型。
Attributes
属性 | 类型 | 描述 |
resource.type | string | 采集的资源类型。如:css、javascript、media、XHR、image、navigation。 |
resource.method | string | HTTP请求方法。如:POST、GET。 |
resource.status_code | string | 资源状态码。 |
resource.message | string | 一般错误时补充的返回结果内容。 |
resource.url | string | 资源URL。 |
resource.name | string | 默认为URL的Path部分,可以基于规则进行匹配或用户主动配置。 |
resource.provider_type | string | 资源提供者类型。如:first-party、cdn、ad、analytics。 |
resource.trace_id | string | 资源请求的TraceID。 |
Measure
指标 | 类型 | 描述 |
resource.success | number | 资源加载是否成功:
|
resource.duration | long (ms) | 加载资源所花费的全部时间。 计算公式:responseEnd - redirectStart |
resource.size | long (bytes) | 资源大小,对应decodedBodySize。 |
resource.connect_duration | long (ms) | 与服务器建立连接所花费的时间。 计算公式:connectEnd - connectStart |
resource.ssl_duration | long (ms) | TLS握手所花费的时间。如果最后一个请求不是通过HTTPS,则不会出现此指标。 计算公式:connectEnd - secureConnectionStart 此处需要特别判断一下,如果secureConnectionStart的值为0, 说明没有发起SSL连接,此时不计算ssl_duration,ssl_duration赋值为0。 |
resource.dns_duration | long (ms) | 解析最后一个请求的DNS 名称所花费的时间。 计算公式:domainLookupEnd - domainLookupStart |
resource.redirect_duration | long (ms) | 重定向HTTP请求上的时间。 计算公式:redirectEnd - redirectStart |
resource.first_byte_duration | long (ms) | 等待接收响应的第一个字节所花费的时间。 计算公式:responseStart - requestStart |
resource.download_duration | long (ms) | 下载响应所用的时间。 计算公式:responseEnd - responseStart |
Metadata
属性 | 类型 | 描述 |
resource.timing_data | string | PerformanceResourceTiming的JSONString。 |
resource.snapshots | string | View快照JSONString,主要用于原生App包含。
|
resource.node_name | string | 发起请求的Dom类型。 |
resource.xpath | string | html. > body. > img. |
resource.provider_name | string | 资源提供者名,默认为unknown。 |
resource.provider_domain | string | 资源提供者域名。 |
Exception表
Attributes
属性 | 类型 | 描述 |
exception.source | string | 错误来源。如:console、event。 |
exception.file | string | 错误文件。 |
exception.type | string | 错误类型包括:
|
exception.name | string | 错误名称,是错误类型的二级分类。 |
exception.message | string | 一个简洁可读的、解释事件的消息。 |
Metadata
属性 | 类型 | 描述 |
exception.stack | string | 有关错误的堆栈跟踪或补充信息。 |
exception.caused_by | string | 异常原因。 |
exception.line | long | 异常发生代码行数。 |
exception.column | long | 异常发生代码列数。 |
exception.thread_id | string | 线程ID。 |
exception.binary_images | string | 错误来源。 |
LongTask表
Attributes
属性 | 类型 | 描述 |
longtask.source | string | 卡顿来源。 |
longtask.type | string | 卡顿类型。 |
longtask.message | string | 一个简洁可读的、解释事件的消息。 |
Metadata
属性 | 类型 | 描述 |
longtask.stack | string | 有关错误的堆栈跟踪或补充信息。 |
longtask.caused_by | string | 卡顿原因。 |
longtask.binary_images | string | 错误来源。 |
Action表
Attributes
属性 | 类型 | 描述 |
action.type | string | 用户行为类型。 |
action.name | string | 语义化的名称。如:单击#checkout。 |
action.target_name | string | 用户与之交互的元素。仅用于自动收集的动作。 |
Measure
指标 | 类型 | 描述 |
action.duration | long (ms) | 行为持续时间。 |
Metadata
属性 | 类型 | 描述 |
action.snapshots | string | 行为快照。 |
action.method_info | string | 行为回调。如:onClick()。 |
Custom表
Attributes
属性 | 类型 | 描述 |
custom.type | string | 自定义类型。 |
custom.name | string | 自定义名。 |
custom.group | string | 兼容RUM1.0的sum/avg的Group。 |
Measure
属性 | 类型 | 描述 |
custom.value | number | 兼容RUM1.0的sum/avg的Value。 |
聚合表设计
Session表
Attributes
属性名 | 类型 | 描述 |
session.id | string | 每个会话随机生成的ID。 |
session.ip | string | 客户端IP地址。 |
session.referrer | string | 上一个网页的URL,从该网页链接到当前请求的页面。 |
session.initial_view_id | string | 用户生成的第一个View ID。 |
session.initial_view_name | string | 用户生成的第一个View Name。 |
session.last_view_id | string | 用户生成的最后一个View ID。 |
session.last_view_name | string | 用户生成的最后一个View Name。 |
session.start | long | Session的开始时间戳。 |
session.end | long | Session的结束时间戳。 |
Metadata
属性 | 类型 | 描述 |
session.initial_view.url | string | 用户生成的第一个View URL。 |
session.last_view_url | string | 用户生成的最后一个View URL。 |
Measure
指标 | 类型 | 名称 | 描述 |
session.time_spent | long (ms) | 会话时长 | 用户会话的持续时间。 |
session.view_count | long | 视图数量 | 此次会话收集的所有浏览次数。 |
session.exception_count | long | 异常数量 | 此次会话收集的所有错误的计数。 |
session.resource_count | long | 资源请求数 | 此次会话收集的所有资源的计数。 |
session.resource_error_count | long | 资源错误数 | 此次会话收集的所有错误资源的计数。 |
session.api_count | long | API请求数 | 此次会话收集的所有资源的计数。 |
session.api_error_count | long | API错误数 | 此次会话收集的所有资源的计数。 |
session.action_count | long | 用户事件数 | 此次会话收集的所有操作的计数。 |
session.long_task_count | long | 卡顿次数 | 此次会话收集的所有长任务的计数。 |
- 本页导读 (1)